【初心者向け】MacユーザがAWS CLIを最速で試す方法
こんにちは、虎塚です。
聞くところによると、最近 AWS コマンドラインインターフェイス(以下、AWS CLI)の人気が再燃しているそうですね。なんとAWS CLIがテーマのイベントまで開催されているではありませんか。これはすごい。
というわけで、今日はAWS初心者のMacユーザが最速でAWS CLIを試す手順を書いてみます。えっ、Windowsしか持ってない? Get Mac or Linux!
以下の作業は、AWSアカウントをすでに持っていることが前提です。また、Mac OS 10.9.3 (13D65) で動作確認しました。
pipのインストール
まず、pipをインストールします。pipとは、Pythonのプログラミング環境で使われるパッケージ管理システムです。
pipのインストールには、easy_installコマンドを利用します。easy_installは、Mac OS 10.9.xでは最初からインストールされていると思います。
% sudo easy_install pip Password: Searching for pip Reading http://pypi.python.org/simple/pip/ Best match: pip 1.5.6 Downloading https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#md5=01026f87978932060cc86c1dc527903e ...
実行するとOSユーザのパスワードを求められるので、入力します。
最終的に次のような出力が表示されれば成功です。
Installed /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg Processing dependencies for pip Finished processing dependencies for pip
pipがインストールされたことを確認しておきましょう。
% which pip /usr/local/bin/pip % pip --version pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg (python 2.7)
pip helpでヘルプを見ることができます。
AWS CLIのインストール
次に、AWS CLIをインストールします。先ほどインストールしたpipコマンドを使います。
% sudo pip install awscli Downloading/unpacking awscli Downloading awscli-1.3.25.tar.gz (237kB): 237kB downloaded Running setup.py (path:/private/tmp/pip_build_root/awscli/setup.py) egg_info for package awscli ...
最終的に、次のような出力が表示されれば成功です。
Successfully installed awscli botocore bcdoc six colorama docutils rsa jmespath python-dateutil pyasn1 Cleaning up...
AWS CLIがインストールされたことを確認しておきます。
% which aws /usr/local/bin/aws % aws --v aws-cli/1.3.25 Python/2.7.5 Darwin/13.2.0
aws helpでヘルプを見ることができます。
AWS CLIの設定
AWS CLIを実行するには、次の4つの情報をローカルマシン側で設定する必要があります。
- アクセスキー
- シークレットアクセスキー
- 接続先のAWSリージョン
- 出力フォーマット
アクセスキーとシークレットアクセスキーの確認
アクセスキーとシークレットアクセスキーは、AWS マネジメントコンソールから確認できます。
rootユーザの場合は、マネジメントコンソール右上のユーザ名をクリック→メニューから[Security Credentials]→[Access Keys (Access Key ID and Secret Access Key)]で、アクセスキーとシークレットアクセスキーを確認します。
しかし、AWSではセキュリティの維持対策として、IAMユーザを作って運用するのがベストプラクティスとされています。rootユーザで日常作業を行うのはよくありません。
これにしたがってIAMユーザを利用している場合は、マネジメントコンソールのIAMメニューを開きます。IAMメニューから[Users]→[(確認対象のUserName)]→[Security Credentials]→[Access Credentials ]で、アクセスキーとシークレットアクセスキーを確認します。
設定ファイルの作成
AWS CLIのconfigureコマンドを使うことで、対話的に設定ファイルを作成します。この方法の利点は、ローカルマシンで他に環境変数を設定しなくてもよいことです。
% aws configure AWS Access Key ID [None]: XXXX AWS Secret Access Key [None]: XXXXXXXX Default region name [None]: ap-northeast-1 Default output format [None]: text
output formatには、json、table、textの3種類を指定できます。プログラムから扱う場合はjsonが使いやすく、ターミナルから目視で確認するにはtableが便利です。また、出力を他のシェルコマンドに渡して処理するにはtextがよいでしょう。詳細は次のページで確認ください。
上のコマンドを実行すると、~/.awsディレクトリに設定ファイルconfigが作成されます。確認しましょう。
% ls -la ~/.aws total 8 drwxr-xr-x 3 username staff 102 8 5 17:16 . drwxr-xr-x+ 26 username staff 884 8 5 16:56 .. -rw------- 1 username staff 154 8 5 16:56 config % cat ~/.aws/config [default] output = text region = ap-northeast-1 aws_access_key_id = XXXX aws_secret_access_key = XXXXXXXX
ここで設定した情報は、awsコマンドの実行時にオプション引数を渡すことで、一時的に上書きすることができます。詳しくはaws helpを確認してください。
AWS CLIの動作確認
AWSへアクセスするコマンドが動作することを確認します。S3にバケットを作成して、作成したバケットを表示してみます。
% aws s3 mb s3://clitest20140805 make_bucket: s3://clitest20140805/ % aws s3 ls 2014-08-05 16:16:38 clitest20140805
ここまできたら、最新のドキュメント(http://docs.aws.amazon.com/cli/latest/)を見ながら、CLIからAWSを好きなだけ触れるようになりました。
エラーになる場合
コマンドを実行した時に、次のようなエラーが出ることがあります。
Unable to construct an endpoint for ec2 in region None
この場合は設定が正しくできていません。aws configureコマンドをもう一度実行して、既存の設定を上書きしましょう。
AWS CLIの練習方法
AWS CLIに慣れるには、自分が過去に実行した、あるいはこれから実行しようとしている操作に対応するAPIを、ドキュメントで逐一調べて、実際に書いてみるのが一番です。
たとえば、AWS初心者の頃は、起動したインスタンスをつい停止し忘れてしまうことがあるかもしれません。一日の作業の終わりに、東京リージョンで稼働中のインスタンスを確認する処理も、AWS CLIを使うとすぐに書けますね。
aws ec2 describe-instances --filters "Name=instance-state-code,Values=16" "Name=availability-zone,Values=ap-northeast-1a,ap-northeast-1c"
また、次の記事のように、公式ドキュメントのGetting Startedやサンプルなどに載っている操作をCLIに置き換えてみるのも、よい練習になると思います。
黒いターミナルに浮かぶ文字は、まるで夏の夜空に咲く花火のようです。AWS CLIで最高の夏にしましょう。それではまた!
参考
(非公式キャラクター・くらめそちゃん)